iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
AI/ ML & Data

從「這次不會壞吧」到自動化的未來:從 DevOps 到 MLOps,改造模型佈署之旅系列 第 9

從「這次不會壞吧」到自動化的未來:09 MLOps 系統功能設計 - 自動化篇

  • 分享至 

  • xImage
  •  

自動化時會用到的功能設計

在完成一個模型後,也可以選擇是否要加入自動化利用新資料定期更新的功能,如果當前的專案還不需要這項功能,想要直接將模型部署上線,那麼就可以直接跳過這一個段落,閱讀下一個段落「部署時會用到的功能設計」;但讀者如果希望加入這項功能,就我們接著看下去。

試想一下,如果希望模型可以利用新資料定期更新,在不導入 MLOps 的情況下,我們就需要定期將該建模流程人工執行一遍,非常麻煩。而導入 MLOps 後我們可以加入兩個功能,將建模流程利用新資料做排程執行,這兩個功能分別是:工作流程的排程功能 、 工作流程的執行服務 ,接下來筆者將分別就兩者的功能串接、設備考量來做說明。

工作流程的排程功能 主要負責將排程設定加入到開發完成的建模流程程式碼中,以供將來排程執行。要做到這點,如同圖三, 工作流程的排程功能 會需要從 GitHub/GitLab 取得開發完成的建模流程程式碼,接著人工加入排程設定後,將檔案上傳 Prefect 伺服器 做排程管控。 Prefect 伺服器 會如同 MLflow 伺服器 一樣,將程式碼、環境設定檔等「檔案」類型的資料存放在 物件儲存空間 以供排程時間到時使用,並將排程設定、紀錄等排程相關的「訊息」資料存放在 SQL 資料庫 。最終,我們也可以將加入排程設定的程式碼透過 Git 做程式碼版本控制,並交由 GitHub/GitLab 託管。

https://ithelp.ithome.com.tw/upload/images/20240923/201694753z8XY3oySE.png

串接完 工作流程的排程功能 後,我們接著來討論其相關功能的部署設備考量。 工作流程的排程功能 主要任務是將設定好排程的檔案上傳到 Prefect 伺服器 ,所以不需要 GPU,可以在不影響開發的情況下,將其與 開發環境 部署在同一台電腦。不過值得一提的是, 工作流程的排程功能 在上傳排程檔案到 Prefect 伺服器 前會檢查環境中的套件是否包含程式碼所需之套件,所以筆者建議為 工作流程的排程功能 建立獨立環境,並利用環境設定檔下載套件,如此便能利用這個檢查的功能確認當前的環境設定檔有沒有缺失的套件,畢竟如果環境設定檔有缺失套件將造成後面很多流程無法正常運作。

接著是自動化會用到的第二個功能 工作流程的執行服務 ,其主要的任務是執行先前 工作流程的排程功能 上傳的建模流程程式碼。 如同圖四,工作流程的執行服務 會在排程時間到時,從 Prefect 伺服器 下載指定的建模流程程式碼,接著執行並將過程紀錄回傳到 Prefect 伺服器 。而因為 工作流程的執行服務 是執行建模流程,如同執行一次完整的開發,所以與 開發環境 相同,需要與 原始資料庫 、 訓練資料的物件儲存空間 、 MLflow 伺服器 串接。除此之外,因為 工作流程的執行服務 是執行特定的建模流程,所以可以設立多個 工作流程的執行服務 分別執行不同建模流程,甚至將一個建模流程拆成多個子流程,交由不同 工作流程的執行服務 執行。

https://ithelp.ithome.com.tw/upload/images/20240923/20169475BlgCGWKZB8.png

串接完 工作流程的執行服務 後,我們同樣來討論其部署設備的考量。一般來說,為了避免與開發用的設備搶資源,我們會獨立出幾台設備專門執行排程任務,而基本上因為我們可以讓不同 工作流程的執行服務 專門負責不同的建模流程,甚至其子流程,所以在考慮設備的時候會根據執行任務的需求做調整。大原則是,如果該 工作流程執行服務 需要訓練模型的任務,那就會部署在 GPU Server 上;而如果只是資料處理等任務,那就可以部署在相對低算力的電腦上。

完整內容 >> https://bit.ly/4dhQ3qc
Line 官方帳號,看最新技術文章:https://user137910.pse.is/aif2024ironman

撰稿工程師:許睦辰


上一篇
從「這次不會壞吧」到自動化的未來:08 MLOps 系統功能設計 - 開發篇
下一篇
從「這次不會壞吧」到自動化的未來:10 MLOps 系統功能設計 - 部署篇
系列文
從「這次不會壞吧」到自動化的未來:從 DevOps 到 MLOps,改造模型佈署之旅11
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言